<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;

class CateController extends BaseController
{
    //显示分类列表
    public function getIndex()
    {
        $dataCate=DB::table('cate')->get();
        $data=$this->getTree($dataCate);
        return view('admin.cate.index',['data'=>$data]);
    }

    //显示添加页面
    public function getAdd()
    {
        $dataCate=DB::table('cate')->get();
        $data=$this->getTree($dataCate);
        return view('admin.cate.add',['data'=>$data]);
    }

    //执行添加方法
    public  function postInsert(Request $request)
    {
        //过滤字段

        $data=$request->except('_token');
//        dd($data);
        //判断 如果是父级
        if($data['cate_pid']==0){
            $data['cate_path']=0;
        }else{

            //如果不是父类 拼接cate_path
            $parent_cate=DB::table('cate')->where('cate_id',$data['cate_pid'])->first();
            $data['cate_path']=$parent_cate['cate_path'].','.$parent_cate['cate_id'];
//            dd($data['cate_path']);
        }
        //插入数据
       $z= DB::table('cate')->insert($data);
        if($z){
            return redirect('admin/cate/index')->with('success','添加成功');
        }else{
            return back()->with('error','添加失败');
        }
    }

    //显示修改页面
    public function getEdit($id)
    {
        //取出所有分类信息
        $dataCate=DB::table('cate')->get();
        //取出要修改的那条分类信息
        $dataOne=DB::table('cate')->where('cate_id',$id)->first();
        //取出该分类下的所有子分类的id
        $CateChileData=$this->getChildren($dataCate,$dataOne['cate_id'],true);
//        dd($CateChileData);
        $data=$this->getTree($dataCate);
        return view('admin.cate.edit',compact('data','dataOne','CateChileData'));
    }


    //执行修改方法
    public function postUpdata(Request $request,$id)
    {
        //过滤字段

        $data=$request->except('_token');
//        dd($data);
        //判断 如果是父级
        if($data['cate_pid']==0){
            $data['cate_path']=0;
        }else{

            //如果不是父类 拼接cate_path
            $parent_cate=DB::table('cate')->where('cate_id',$data['cate_pid'])->first();
            $data['cate_path']=$parent_cate['cate_path'].','.$parent_cate['cate_id'];
//            dd($data['cate_path']);
        }
        //插入数据
        $z= DB::table('cate')->where('cate_id',$id)->update($data);
        if($z){
            return redirect('admin/cate/index')->with('success','修改成功');
        }else{
            return back()->with('error','修改失败');
        }
    }

    //执行删除方法
    public function getDelete($id)
    {
        //获得子分类
        $data=DB::table('cate')->get();
        $child=$this->getChildren($data,$id,true);
//        dd($child);
        if($child){
            return back()->with('info','请先删除子分类');
        }else{
            $z=DB::table('cate')->where('cate_id',$id)->delete();
            if($z){
                return back()->with('info','删除成功');
            }else{
                return back()->with('info','删除失败');
            }
        }

    }
}
